ClojureScript (Squint) で React フロントエンド開発 2025 年版
パッケージシステムである Clojars には cljsjs という名前空間で登録していた デメリット
npm が成熟していくと、相対的に不便になってきた cljsjs を扱える
頑張れば npm パッケージも使えるらしい?
npm からインストールできるようになった
npm ライブラリも clojars のライブラリも使える
Hot reload も可能
デメリット
起動がちょっと遅い
確かにキャッチアップする時にめちゃくちゃこのページ見た気がする radish-miyazaki.icon
ClojureScript 自体への不満
Maps や Vectors は JavaScript の Objects や Arrays ではないので変換が必要
async / await をサポートしていないため Promise を処理する際に困る core.async を使うとほとんど同じことはできる
が、Promise を返すわけではないので組み合わせた時にうまく動作しない
既存の ClojureScript との互換性を捨てて、JavaScript の親和性を高めた ClojureScript の 方言 Maps や Vector などが JavaScript の普通のオブジェクトや Array に変換される
ビルド語のファイルサイズが小さい
async / await が使える
warning.icon
仕様が固まっていないので、本番環境での使用は注意が必要
細かい不具合はまだ多い
既存の ClojureScript の資産が使えない
Clojure / ClojureScript における動的な型チェック
回避策
Zod や Valibot のようなバリデーションライブラリを関数の入力値の動的な型チェックに用いる NODE_ENV=development の時だけチェックする
Github.icon サンプルコード